<?php

/**
* This is the model class for table "TB_QTC_PRODUCTS".
*
* The followings are the available columns in table 'TB_QTC_PRODUCTS':
    * @property string $PRODUCT_CODE
    * @property string $PRODUCT_NAME
    * @property string $PRODUCT_ENG_NAME
    * @property integer $MENU_CODE
    * @property string $DETAIL
    * @property string $KEYWORDS
    * @property string $BEST_SELL_YN
    * @property integer $FILE_ATTC_GRP_CODE
    * @property string $FIRST_REG_DT
    * @property string $FIRST_REG_USER
    * @property string $LAST_UPD_DT
    * @property string $LAST_UPD_USER
*/
class Product extends CActiveRecord
{
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'TB_QTC_PRODUCTS';
}

/**
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
    array('MENU_CODE, DETAIL, KEYWORDS, BEST_SELL_YN, FILE_ATTC_GRP_CODE, FIRST_REG_DT, LAST_UPD_DT', 'required'),
    array('MENU_CODE, FILE_ATTC_GRP_CODE', 'numerical', 'integerOnly'=>true),
    array('PRODUCT_NAME, PRODUCT_ENG_NAME, FIRST_REG_USER, LAST_UPD_USER', 'length', 'max'=>50),
    array('KEYWORDS', 'length', 'max'=>100),
    array('BEST_SELL_YN', 'length', 'max'=>1),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('PRODUCT_CODE, PRODUCT_NAME, PRODUCT_ENG_NAME, MENU_CODE, DETAIL, KEYWORDS, BEST_SELL_YN, FILE_ATTC_GRP_CODE, FIRST_REG_DT, FIRST_REG_USER, LAST_UPD_DT, LAST_UPD_USER', 'safe', 'on'=>'search'),
);
}

/**
* @return array relational rules.
*/
public function relations()
{
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
        'Menu' => array(self::BELONGS_TO, 'Menu', 'MENU_CODE', 'joinType'=>'INNER JOIN'),
        'GroupFile' => array(self::HAS_ONE, 'GroupFile', 'ATTC_GRP_CODE',  'with'=>'FileAttach'),
    );
}

/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels()
{
return array(
    'PRODUCT_CODE' => 'PRODUCT CODE',
    'PRODUCT_NAME' => 'PRODUCT NAME',
    'PRODUCT_ENG_NAME' => 'PRODUCT ENGLISH NAME',
    'MENU_CODE' => 'MENU CODE',
    'DETAIL' => 'DESCRIPTION',
    'KEYWORDS' => 'KEYWORDS',
    'BEST_SELL_YN' => 'BEST SELL ITEM',
    'FILE_ATTC_GRP_CODE' => 'FILE ATTACH',
    'FIRST_REG_DT' => 'FIRST REGISTER DATE',
    'FIRST_REG_USER' => 'FIRST REGISTER USER',
    'LAST_UPD_DT' => 'LAST UPDATE DATE',
    'LAST_UPD_USER' => 'LAST UPDATE USER',
);
}

/**
* Retrieves a list of models based on the current search/filter conditions.
*
* Typical usecase:
* - Initialize the model fields with values from filter form.
* - Execute this method to get CActiveDataProvider instance which will filter
* models according to data in model fields.
* - Pass data provider to CGridView, CListView or any similar widget.
*
* @return CActiveDataProvider the data provider that can return the models
* based on the search/filter conditions.
*/
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.

        $criteria=new CDbCriteria;

		$criteria->compare('PRODUCT_CODE',$this->PRODUCT_CODE,true);
		$criteria->compare('PRODUCT_NAME',$this->PRODUCT_NAME,true);
		$criteria->compare('PRODUCT_ENG_NAME',$this->PRODUCT_ENG_NAME,true);
		$criteria->compare('MENU_CODE',$this->MENU_CODE);
		$criteria->compare('DETAIL',$this->DETAIL,true);
		$criteria->compare('KEYWORDS',$this->KEYWORDS,true);
		$criteria->compare('BEST_SELL_YN',$this->BEST_SELL_YN,true);
		$criteria->compare('FILE_ATTC_GRP_CODE',$this->FILE_ATTC_GRP_CODE);
		$criteria->compare('FIRST_REG_DT',$this->FIRST_REG_DT,true);
		$criteria->compare('FIRST_REG_USER',$this->FIRST_REG_USER,true);
		$criteria->compare('LAST_UPD_DT',$this->LAST_UPD_DT,true);
		$criteria->compare('LAST_UPD_USER',$this->LAST_UPD_USER,true);

        return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
        ));
}

/**
* Returns the static model of the specified AR class.
* Please note that you should have this exact method in all your CActiveRecord descendants!
* @param string $className active record class name.
* @return Product the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
